package jp.aist.gtrc.plus.admission;

import jp.aist.gtrc.plus.admission.EDF.JobArray;
import jp.aist.gtrc.plus.admission.EDF.Schedule;
import jp.aist.gtrc.plus.scheduler.sys.SchedulerException;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Calendar;


public interface AdmissionServer extends Remote {

	String RMI_OBJ_NAME = "AdmissionServer";

	boolean isFeasible(JobArray jobArray) throws RemoteException, AdmissionException, SchedulerException;
	void submit(JobArray jobAarray, QcommandClient qcommandClient) throws RemoteException, AdmissionException, SchedulerException;

	int isFeasibleAndRecommend(JobArray jobArray) throws RemoteException, AdmissionException, SchedulerException;
	int submitAndRecommend(JobArray jobAarray, QcommandClient qcommandClient) throws RemoteException, AdmissionException, SchedulerException;

        Schedule getSchedule() throws RemoteException, AdmissionException, SchedulerException;

        void reschedule(QcommandClient qcommandClient) throws RemoteException, AdmissionException, SchedulerException;
 
}
